home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / m17n / bo-ewts.mim < prev    next >
Text File  |  2009-04-29  |  7KB  |  364 lines

  1. ;; bo-ewts.mim -- Tibetan input method with EWTS
  2. ;; Copyright (C) 2007
  3. ;;   National Institute of Advanced Industrial Science and Technology (AIST)
  4. ;;   Registration Number H15PRO112
  5.  
  6. ;; This file is part of the m17n database; a sub-part of the m17n
  7. ;; library.
  8.  
  9. ;; The m17n library is free software; you can redistribute it and/or
  10. ;; modify it under the terms of the GNU Lesser General Public License
  11. ;; as published by the Free Software Foundation; either version 2.1 of
  12. ;; the License, or (at your option) any later version.
  13.  
  14. ;; The m17n library is distributed in the hope that it will be useful,
  15. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. ;; Lesser General Public License for more details.
  18.  
  19. ;; You should have received a copy of the GNU Lesser General Public
  20. ;; License along with the m17n library; if not, write to the Free
  21. ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  22. ;; Boston, MA 02110-1301, USA.
  23.  
  24. (input-method bo ewts)
  25.  
  26. (description "Tibetan input method based on EWTS.
  27. This implementation is based on THDL Extended Wylie Transliteration Scheme
  28. Version 2.0 <http://www.thdl.org/collections/langling/ewts/ewts.php>.")
  29.  
  30. (title "α╜Ç")
  31.  
  32. (variable
  33.  (precomposed
  34.   (_"Flag to tell whether or not to generate precomposed characters.
  35. If 1, generate precomposed characters if available (e.g. \"α╜╢\"(U+0F76).
  36. If 0, generate only decomposed characters (e.g. \"α╛▓α╛Ç\" (U+0FB2 U+0F80).")
  37.   0 0 1))
  38.  
  39. (map
  40.  ;; This map is used also for subjoined consonants.
  41.  (consonant
  42.   ("k" "α╜Ç")
  43.   ("kh" "α╜ü")
  44.   ("g" "α╜é")
  45.   ("ng" "α╜ä")
  46.   ("c" "α╜à")
  47.   ("ch" "α╜å")
  48.   ("j" "α╜ç")
  49.   ("ny" "α╜ë")
  50.   ("t" "α╜Å")
  51.   ("th" "α╜É")
  52.   ("d" "α╜æ")
  53.   ("n" "α╜ô")
  54.   ("p" "α╜ö")
  55.   ("ph" "α╜ò")
  56.   ("b" "α╜û")
  57.   ("m" "α╜ÿ")
  58.   ("ts" "α╜Ö")
  59.   ("tsh" "α╜Ü")
  60.   ("dz" "α╜¢")
  61.   ("w" "α╜¥")
  62.   ("zh" "α╜₧")
  63.   ("z" "α╜ƒ")
  64.   ("'" "α╜á")
  65.   ("y" "α╜í")
  66.   ("r" "α╜ó")
  67.   ("l" "α╜ú")
  68.   ("sh" "α╜ñ")
  69.   ("s" "α╜ª")
  70.   ("h" "α╜º")
  71.   ("a" "α╜¿"))
  72.  
  73.  ;; Standard Tibetan Stacks listed at:
  74.  ;; <http://www.thdl.org/collections/langling/tibstacks.html>
  75.  (standard-stack
  76.   ("kl" "α╜Çα╛│")
  77.   ("kr" "α╜Çα╛▓")
  78.   ("kw" "α╜Çα╛¡")
  79.   ("ky" "α╜Çα╛▒")
  80.   ("khr" "α╜üα╛▓")
  81.   ("khw" "α╜üα╛¡")
  82.   ("khy" "α╜üα╛▒")
  83.   ("gl" "α╜éα╛│")
  84.   ("gr" "α╜éα╛▓")
  85.   ("grw" "α╜éα╛▓α╛¡")
  86.   ("gw" "α╜éα╛¡")
  87.   ("gy" "α╜éα╛▒")
  88.   ("cw" "α╜àα╛¡")
  89.   ("nyw" "α╜ëα╛¡")
  90.   ("tr" "α╜Åα╛▓")
  91.   ("tw" "α╜Åα╛¡")
  92.   ("thr" "α╜Éα╛▓")
  93.   ("dr" "α╜æα╛▓")
  94.   ("drw" "α╜æα╛▓α╛¡")
  95.   ("dw" "α╜æα╛¡")
  96.   ("pr" "α╜öα╛▓")
  97.   ("py" "α╜öα╛▒")
  98.   ("phr" "α╜òα╛▓")
  99.   ("phy" "α╜òα╛▒")
  100.   ("phyw" "α╜òα╛▒α╛¡")
  101.   ("bl" "α╜ûα╛│")
  102.   ("br" "α╜ûα╛▓")
  103.   ("by" "α╜ûα╛▒")
  104.   ("mr" "α╜ÿα╛▓")
  105.   ("my" "α╜ÿα╛▒")
  106.   ("tsw" "α╜Öα╛¡")
  107.   ("tshw" "α╜Üα╛¡")
  108.   ("zhw" "α╜₧α╛¡")
  109.   ("zl" "α╜ƒα╛│")
  110.   ("zw" "α╜ƒα╛¡")
  111.   ("rb" "α╜óα╛ª")
  112.   ("rd" "α╜óα╛í")
  113.   ("rdz" "α╜óα╛½")
  114.   ("rg" "α╜óα╛Æ")
  115.   ("rgw" "α╜óα╛Æα╛¡")
  116.   ("rgy" "α╜óα╛Æα╛▒")
  117.   ("rj" "α╜óα╛ù")
  118.   ("rk" "α╜óα╛É")
  119.   ("rky" "α╜óα╛Éα╛▒")
  120.   ("rl" "α╜óα╛│")
  121.   ("rm" "α╜óα╛¿")
  122.   ("rmy" "α╜óα╛¿α╛▒")
  123.   ("rn" "α╜óα╛ú")
  124.   ("rng" "α╜óα╛ö")
  125.   ("rny" "α╜óα╛Ö")
  126.   ("rt" "α╜óα╛ƒ")
  127.   ("rts" "α╜óα╛⌐")
  128.   ("rtsw" "α╜óα╛⌐α╛¡")
  129.   ("rw" "α╜óα╛¡")
  130.   ("lb" "α╜úα╛ª")
  131.   ("lc" "α╜úα╛ò")
  132.   ("ld" "α╜úα╛í")
  133.   ("lg" "α╜úα╛Æ")
  134.   ("lh" "α╜úα╛╖")
  135.   ("lj" "α╜úα╛ù")
  136.   ("lk" "α╜úα╛É")
  137.   ("lng" "α╜úα╛ö")
  138.   ("lp" "α╜úα╛ñ")
  139.   ("lt" "α╜úα╛ƒ")
  140.   ("shr" "α╜ñα╛▓")
  141.   ("shw" "α╜ñα╛¡")
  142.   ("sb" "α╜ªα╛ª")
  143.   ("sbr" "α╜ªα╛ªα╛▓")
  144.   ("sby" "α╜ªα╛ªα╛▒")
  145.   ("sd" "α╜ªα╛í")
  146.   ("sg" "α╜ªα╛Æ")
  147.   ("sgr" "α╜ªα╛Æα╛▓")
  148.   ("sgy" "α╜ªα╛Æα╛▒")
  149.   ("sk" "α╜ªα╛É")
  150.   ("skr" "α╜ªα╛Éα╛▓")
  151.   ("sky" "α╜ªα╛Éα╛▒")
  152.   ("sl" "α╜ªα╛│")
  153.   ("sm" "α╜ªα╛¿")
  154.   ("smr" "α╜ªα╛¿α╛▓")
  155.   ("smy" "α╜ªα╛¿α╛▒")
  156.   ("sn" "α╜ªα╛ú")
  157.   ("sng" "α╜ªα╛ö")
  158.   ("snr" "α╜ªα╛úα╛▓")
  159.   ("sny" "α╜ªα╛Ö")
  160.   ("sp" "α╜ªα╛ñ")
  161.   ("spr" "α╜ªα╛ñα╛▓")
  162.   ("spy" "α╜ªα╛ñα╛▒")
  163.   ("sr" "α╜ªα╛▓")
  164.   ("st" "α╜ªα╛ƒ")
  165.   ("sts" "α╜ªα╛⌐")
  166.   ("sw" "α╜ªα╛¡")
  167.   ("hr" "α╜ºα╛▓")
  168.   ("hw" "α╜ºα╛¡"))
  169.  
  170.  (sanskrit
  171.   ("T" "α╜è")
  172.   ("Th" "α╜ï")
  173.   ("D" "α╜î")
  174.   ("N" "α╜Ä")
  175.   ("Sh" "α╜Ñ")
  176.   ("oM" (cond (precomposed "α╝Ç") (1 "α╜¿α╜╝α╜╛")))
  177.   ("R+" "α╜¬"))
  178.  
  179.  (force-stack
  180.   ("+"))
  181.  
  182.  (break-stack
  183.   ("."))
  184.  
  185.  (special-subjoined
  186.   ("h" (cond ((= precomposed 0) "α╛╖")
  187.          ((= @-1 ?α╜é) (delete @-1) "α╜â")
  188.          ((= @-1 ?α╜æ) (delete @-1)  "α╜Æ")
  189.          ((= @-1 ?α╜û) (delete @-1)  "α╜ù")
  190.          ((= @-1 ?α╜¢) (delete @-1)  "α╜£")
  191.          (1 "α╛╖")))
  192.   ("Sh" (cond ((= precomposed 0) "α╛╡")
  193.           ((= @-1 ?α╜Ç) (delete @-1) "α╜⌐")
  194.           (1 "α╛╡")))
  195.   ("W" "α╛║")
  196.   ("Y" "α╛╗")
  197.   ("R" "α╛╝"))
  198.  
  199.  (vowel
  200.   ("a" "")
  201.   ("i" "α╜▓")
  202.   ("u" "α╜┤")
  203.   ("e" "α╜║")
  204.   ("o" "α╜╝")
  205.   ("-i" (cond ((= precomposed 0) "α╛Ç")
  206.           ((= @-1 ?α╛▓) "α╜╢")
  207.           ((= @-1 ?α╛│) "α╜╕")
  208.           (1 "α╛Ç")))
  209.   ("A" "α╜▒")
  210.   ("I" "α╜│")
  211.   ("U" "α╜╡")
  212.   ("ai" "α╜╗")
  213.   ("au" "α╜╜")
  214.   ("r-I" "α╜╖")
  215.   ("l-I" "α╜╣")
  216.   ("-I" (cond ((= precomposed 0) "α╛ü")
  217.           ((= @-1 ?α╛▓) "α╜╖")
  218.           ((= @-1 ?α╛│) "α╜╣")
  219.           (1 "α╛ü"))))
  220.  
  221.  (others
  222.   ;; Numbers
  223.   ("0" "α╝á")
  224.   ("1" "α╝í")
  225.   ("2" "α╝ó")
  226.   ("3" "α╝ú")
  227.   ("4" "α╝ñ")
  228.   ("5" "α╝Ñ")
  229.   ("6" "α╝ª")
  230.   ("7" "α╝º")
  231.   ("8" "α╝¿")
  232.   ("9" "α╝⌐")
  233.   ;; These half numbers are not in EWTS but for convenience.
  234.   ("-1" "α╝¬")
  235.   ("-2" "α╝½")
  236.   ("-3" "α╝¼")
  237.   ("-4" "α╝¡")
  238.   ("-5" "α╝«")
  239.   ("-6" "α╝»")
  240.   ("-7" "α╝░")
  241.   ("-8" "α╝▒")
  242.   ("-9" "α╝▓")
  243.   ("-0" "α╝│")
  244.   ;; Sanskrit-related marks
  245.   ("H" "α╜┐")
  246.   ("M" "α╜╛")
  247.   ("~M" "α╛â")
  248.   ("~M`" "α╛é")
  249.   ("?" "α╛ä")
  250.   ("&" "α╛à")
  251.   ;; Intersyllabic marks
  252.   (" " "α╝ï")
  253.   ("*" "α╝î")
  254.   ;; Phrase deliminating marks
  255.   ("/" "α╝ì")
  256.   ("//" "α╝Ä")
  257.   (";" "α╝Å")
  258.   ("|" "α╝æ")
  259.   ("!" "α╝ê")
  260.   (":" "α╝ö")
  261.   ("_" " ")
  262.   ("=" "α╝┤")
  263.   ;; Head marks
  264.   ("@" "α╝ä")
  265.   ("#" "α╝à")
  266.   ("$" "α╝å")
  267.   ("%" "α╝ç")
  268.   ;; Paired punctuation marks (brackets)
  269.   ("<" "α╝║")
  270.   (">" "α╝╗")
  271.   ("(" "α╝╝")
  272.   (")" "α╝╜")
  273.   ;; Miscellaneous
  274.   ("~X" "α╝╡")
  275.   ("X" "α╝╖")
  276.   ("^" "α╝╣"))
  277.  
  278.  (escape
  279.   ("\\" (mark BEG) "\\"))
  280.  
  281.  (non-tibetan
  282.   ("["))
  283.  
  284.  (unicode
  285.   ("u" "u" (set MAX-COUNT 4))
  286.   ("U" "U" (set MAX-COUNT 8)))
  287.  
  288.  (unescape
  289.   ("]"))
  290.  
  291.  (hexadigit
  292.   ("0" "0")
  293.   ("1" "1")
  294.   ("2" "2")
  295.   ("3" "3")
  296.   ("4" "4")
  297.   ("5" "5")
  298.   ("6" "6")
  299.   ("7" "7")
  300.   ("8" "8")
  301.   ("9" "9")
  302.   ("A" "A") ("a" "A")
  303.   ("B" "B") ("b" "B")
  304.   ("C" "C") ("c" "C")
  305.   ("D" "D") ("d" "D")
  306.   ("E" "E") ("e" "E")
  307.   ("F" "F") ("f" "F"))
  308.  
  309.  (backspace
  310.   ((Backspace) (undo))))
  311.  
  312. (state
  313.  (init
  314.   (consonant (shift after-consonant))
  315.   (standard-stack (shift after-consonant))
  316.   (sanskrit (shift after-consonant))
  317.   (vowel (move @<) "α╜¿" (move @>) (shift after-vowel))
  318.   (others)
  319.   (escape (shift dispatch-escape))
  320.   (non-tibetan (shift non-tibetan))
  321.   (backspace))
  322.  
  323.  (after-consonant
  324.   (force-stack (shift consonant-stack))
  325.   (break-stack (shift init))
  326.   (vowel (shift after-vowel)))
  327.   
  328.  (consonant-stack
  329.   "α╜Ç+"
  330.   (special-subjoined (shift after-consonant))
  331.   (consonant (set C @-1) (delete @-1) (add C #x50) (insert C)
  332.          (shift after-consonant))
  333.   (force-stack)
  334.   (nil (pop)))
  335.  
  336.  (after-vowel
  337.   (force-stack (shift vowel-stack)))
  338.  
  339.  (vowel-stack
  340.   "α╜Ç+"
  341.   (vowel (shift after-vowel)))
  342.  
  343.  (dispatch-escape
  344.   (unicode (shift unicode))
  345.   (nil (delete BEG) (shift init) (unhandle)))
  346.  
  347.  (unicode
  348.   "α╜Çu"
  349.   (t (set COUNT 0) (set UNICODE 0))
  350.   (hexadigit (cond ((> @-1 ?9) (set UNICODE (+ (* UNICODE 16) (- @-1 55))))
  351.            (1 (set UNICODE (+ (* UNICODE 16) (- @-1 48)))))
  352.          (set COUNT (+ COUNT 1))
  353.          (cond ((= COUNT MAX-COUNT) (delete BEG) (insert UNICODE)
  354.             (shift init)))))
  355.  
  356.  (non-tibetan
  357.   "α╜ÇA"
  358.   (unescape (shift init))
  359.   (nil (unhandle))))
  360.  
  361. ;; Local Variables:
  362. ;; mode: lisp
  363. ;; End:
  364.